A cellular mobile access network is a radio network made up of a number of cells, each cell being served by a fixed transmitter. Cells are used to cover different areas in order to provide radio coverage over a wider area than the area of one cell.
As shown in FIG. 1, when a user with mobile equipment 1 moves between the areas covered by adjacent cells 2, 3, a handover must be performed between those cells. A connection between the mobile equipment 1 and the old cell 2 is broken, and a new connection between the mobile equipment 1 and a new cell 3 is established. During this procedure, the servicing of data packets to and from the mobile equipment 1 is halted for a short time. The cells may comprise a Base Station, Radio Network Controller, or other similar device that has a downlink buffer. Data held in the downlink buffer at the old cell 2 must be transferred to the downlink buffer of the new cell 3.
In 3G networks, this is solved by a special procedure and signalling standardized by 3GPP. In current 3G networks the buffer transfer procedure is done infrequently only when the user moves between Radio Network Controllers (RNCs). In future Long Term Evolution (LTE) technology, it is planned that this procedure will be done frequently because the packets are stored in the Base Stations (BSs) 20, 30, as illustrated in FIG. 1, and will therefore be transferred between base stations during cell handover. Nevertheless, the 3GPP solution does not ensure a continuous and seamless user experience when the user moves between cells.
If the mobile equipment is active (for example it is downloading a file) when the handover occurs, there are packets stored in the downlink buffer of the BS or RNC. During the handover, these packets need to be handled in order to ensure a seamless user experience. If the packets are simply dropped, the end-user would experience a significant and long-lasting download throughput degradation at cell handover. To avoid this, 3GPP TS 43.129 specifies how packet-switched handovers are performed, but does not get round the problem of packets being lost. In future systems, such as 3GPP LTE, this procedure is triggered every time the mobile equipment is involved in a hand-over between cells.
The buffer transfer procedure is not sufficient to avoid throughput degradation and packet loss from the buffer. During a handover, the service to the mobile equipment is stopped for a short time. This time period is called outage time. During outage time, the data sender (a Transmission Control Protocol, TCP, server) is unaware of the outage, and continues to send data. Using high speed networks that use, for example, High Speed Downlink Packet Access (HSDPA), enhanced HSDPA, LTE, 4G, 802.11, WiMAX, even where the outage time is short, the uninterrupted data flow to the buffer may cause a sudden buffer overflow and a large burst of packets will be lost in a sequence. This is illustrated in FIG. 2. Buffer growth is caused by service interruption (e.g. during a mobile handover). During this time, packet servicing from the buffer is suspended, but the buffer filling is not stopped. The buffer therefore fills at an increased rate. Regions of buffer growth are illustrated 4, 5. In some circumstances, the buffer growth 5 may cause the buffer usage to exceed the buffer size, which leads to lost packets. Buffer usage may be exceeded in the buffer of the new cell or of a Radio Network Controller (RNC), depending on the hardware used.
FIG. 3 shows an example measurement of a 3GPP SAE/LTE intra-system handover case. The graph shows the TCP data rate both before and after a handover between cells. Before handover, the data transfer rate is around 10 Mbps. At handover, the data rate drops to around 5 Mbps, and takes around 10 seconds to recover back to 10 Mbps.
The loss caused by buffer overflow causes TCP to assume erroneously that there is congestion, and so the TCP responds by halving its congestion window. In the case of a time out, the TC data rate may be reduced to zero. In order to avoid this from happening, it is necessary to avoid buffer overflow.
One solution to avoid buffer overflow is to provide a very large buffer. However, this is undesirable for the following reasons:                1. A large buffer would be unnecessary for >90% of the time, leading to inefficient use of resources;        2. Buffers in mobile nodes are costly; and        3. Large buffers have a negative impact on end-to-end applications, reduce responsiveness and increase round-trip time.        